PHP микросервисная платформа Swoft
Swoft - это высокопроизводительная микросервисная сопрограмма на PHP. Он был опубликован в течение многих лет и стал лучшим выбором для php. Это может быть как Go, встроенный веб-сервер сопрограмм и обычный клиент сопрограмм, который находится в памяти независимо от традиционного PHP-FPM. Существуют аналогичные операции на языке Go, похожие на гибкие аннотации среды Spring Cloud.
За три года накопления и изучения направлений Swoft сделала Swoft Spring Cloud в мире PHP, который является лучшим выбором для высокопроизводительной среды PHP и управления микросервисами.
Установка
Используйте composer для установки Swoft
swoft:/www# composer create-project swoft/swoft swoft Installing swoft/swoft (v2.0.5) - Installing swoft/swoft (v2.0.5): Loading from cache Created project in swoft > @php -r "file_exists('.env') || copy('.env.example', '.env');" Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 84 installs, 0 updates, 0 removals - Installing swoft/stdlib (v2.0.5): Loading from cache - Installing swoft/server (v2.0.5): Loading from cache - Installing nikic/php-parser (v4.2.4): Downloading (100%) ...... toolkit/cli-utils suggests installing inhere/php-validate (Very lightweight data validate tool) toolkit/cli-utils suggests installing inhere/console (a lightweight php console application library.) ...... Writing lock file Generating autoload files
Запуск
После установки перейдите в корневой каталог проекта Swoft и запустите Swoft, как показано ниже.
root@MyServer:/tmp/swoft# php bin/swoft http:start 2019/09/14-10:29:34 [INFO] Swoft\SwoftApplication:setSystemAlias(485) Set alias @base=/tmp/swoft 2019/09/14-10:29:34 [INFO] Swoft\SwoftApplication:setSystemAlias(486) Set alias @app=@base/app ...... 2019/09/14-10:29:35 [INFO] Swoft\Processor\ConsoleProcessor:handle(39) Console command route registered (group 14, command 42) Information Panel ******************************************************************** * HTTP | Listen: 0.0.0.0:18306, type: TCP, mode: Process, worker: 3 * RPC | Listen: 0.0.0.0:18307, type: TCP ******************************************************************** HTTP server start success ! 2019/09/14-10:29:35 [INFO] Swoft\Server\Server:startSwoole(492) Swoole\Runtime::enableCoroutine 2019/09/14-10:29:35 [INFO] ......
Приложение запущено, вы можете увидеть порт с Http и Rpc.
Затем вы получаете доступ к сервису в браузере по адресу http://127.0.0.1:18306. Следующая страница появится если вы перейдете по адресу выше.
Скажи привет мир
Создайте новый файл HelloWorldController.php
в каталоге контроллера Swoft ( app/Http/Controller
) следующим образом.
Контроллер и маршрутизатор, используемые здесь, будут подробно описаны в следующей статье, перезапустите службу.
Откройте страницу в браузере http://127.0.0.1:18306/hello-world/index, вы получите следующий результат.
Benchmarks
Просто протестируйте Swoft под инструментом Apache Bench и получите следующие результаты: